package com.qa.service;

import com.qa.common.result.Result;
import com.qa.pojo.dto.CategoryAddDTO;
import com.qa.pojo.dto.CategoryUpdateDTO;
import com.qa.pojo.entity.Category;
import com.qa.pojo.vo.CategoryQueryVO;

import java.util.List;

/**
 * @author 徐
 */
public interface CategoryService {

    /**
     * 添加分类
     *
     * @param categoryAddDTO 分类实体
     * @return 是否成功
     */
    Result addCategory(CategoryAddDTO categoryAddDTO);

    /**
     * 查询某一用户的所有分类
     *
     * @param userId 用户id
     * @return List<Category>
     */
    List<Category> getCategoryByUser(Long userId);

    /**
     * 根据分类名称查询公开的存在的别人的分类（分类id，分类名称，创建者，创建者昵称）
     *
     * @param name 分类名称
     * @return List CategoryQueryVO
     */
    Result<List<CategoryQueryVO>> getCategoryByName(String name);

    /**
     * 更新本用户的某一个分类
     *
     * @param categoryUpdateDTO 分类实体
     * @return 是否成功
     */
    Result updateMyCategory(CategoryUpdateDTO categoryUpdateDTO);

    /**
     * 删除我的分类
     *
     * @param categoryId 分类id
     * @return
     */
    Result deleteMyCategory(Long categoryId);
}
